package com.dd.common.aspect.annotation;

import com.dd.common.enums.RequestType;

import java.lang.annotation.*;

/**
 * 操作日志注解
 * 用于标记需要记录操作日志的方法
 * @author cheng
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LogOperation {

    /**
     * 操作标题（必填）
     * 示例："用户登录"、"删除商品"
     */
    String title();

    /**
     * 请求类型（用于特殊处理，如文件上传）
     * 默认为普通请求
     */
    RequestType requestType() default RequestType.Normal;

    /**
     * 是否记录参数（默认 true）
     * 如果为 false，则 args 字段为空，避免敏感或大参数记录
     */
    boolean recordParams() default true;

    /**
     * 是否忽略异常日志（默认 false，即异常也会记录）
     */
    boolean ignoreException() default false;
}